home *** CD-ROM | disk | FTP | other *** search
/ Floppyshop 2 / Floppyshop - 2.zip / Floppyshop - 2.iso / diskmags / 0022-3.564 / dmg-3557 / news.txt / stos4.asc < prev    next >
Text File  |  1989-04-05  |  7KB  |  168 lines

  1.  
  2.                     STOS BASIC TUTORIAL - PART FOUR
  3.                     -------------------------------
  4.  
  5.                        Written by Lozian for STEN
  6.                        --------------------------
  7.  
  8.  
  9. Last  time  we concentrated on getting a picture to appear on  the  screen 
  10. from  the  memory  bank,and  hopefully  you  have  mastered   this.   This 
  11. articlewill  move  on (excuse the pun),  to show you how  to  scroll   the 
  12. screen you have designated to appear, hopefully in the direction that  you 
  13. require.
  14.  
  15. So let us begin by booting up your COPY (Your COPY only), of STOS.
  16.  
  17.  
  18. Direct Commands - RESERVE AS DATASCREEN 5:LOAD "\STOS\PIC.PI1",5
  19.  
  20.  
  21. What  we  have done is reserve memory for the screen so that  we  are  not 
  22. continually  accessing  the drive and have loaded the screen into  BANK  5 
  23. ready  for  recall when required.  Screen PIC.PI1 is in the  STOS  folder, 
  24. hence the syntax,but you can load in any screen of your choice into a BANK 
  25. of  your  choice  provided  you  follow  the  rules  as  above.  The  only 
  26. stipulation  as  regards BANK of your choice,is to be careful if  you  are 
  27. using accessories and pick the QUIT & GRAB option,since the accessory  may 
  28. try,and succeed,to grab the BANK space you have reserved.
  29.  
  30. You  are normally warned about this from the accessory.  The  manual  does 
  31. explain which BANK's are used by SPRITES etc.
  32.  
  33. Now  study the following listing and I will endeavour to explain  what  is 
  34. happening with the help of REM statements.
  35.  
  36.  10 MODE 0:FLASH OFF:HIDE:CURS OFF:KEY OFF:BACK=LOGIC
  37.  20 GET PALETTE (5):REM Get correct screen colours.
  38.  30 APPEAR 5,30:REM Recall screen from BANK 5,fade in no.30 (or choose).
  39.  40 DEF SCROLL 1,0,0 TO 320,200,1,-1:REM 1st parameter is scroll no.and
  40.     you can define up to sixteen scroll zones,2nd and 3rd parameters are
  41.     top left of scroll area TO 4th and 5th being bottom right of scroll
  42.     area (full screen in this example).6th parameter defines direction
  43.     of scroll in pixels, negative being left and positive being right.
  44.     7th parameter defines direction up (negative) or down (positive) by
  45.     no.of pixels at each scroll call.
  46.  50 SCROLL 1:REM Call scroll previously defined.
  47.  60 SCREEN COPY 5 TO LOGIC:REM Copy back original screen.
  48.  70 GOTO 50:REM Enter loop to show effect.
  49.  
  50. Remember to RUN it.
  51.  
  52. This  routine  gives  a jittering screen providing  your  display  is  not 
  53. already like this.
  54.  
  55. To break out of this program use Control+C but specially note that if  the 
  56. screen is being updated it may be a moment or two before your keypress  is 
  57. read. So be patient.
  58.  
  59. Now try this.
  60.  
  61.   10 MODE 0:FLASH OFF:HIDE:CURS OFF:KEY OFF:BACK=LOGIC
  62.   20 GET PALETTE (5)
  63.   30 APPEAR 5,22
  64.   40 DEF SCROLL 1,0,0 TO 320,200,0,1:REM Try last parameter 5.
  65.   50 FOR Y=0 TO 100:REM Try inserting STEP 5.
  66.   60 SCREEN COPY BACK,0,0,320,200 TO LOGIC,0,1:REM Try last parameter 5.
  67.   70 SCROLL 1
  68.   80 NEXT Y
  69.   90 CLS
  70.  100 APPEAR 5,15
  71.  110 GOTO 35
  72.  
  73. This is a down scroll.  Try changing the parameters in the lines that  are 
  74. specified,but change them all equally first and view the effect,  then try 
  75. different values in different lines to clarify what is actually going  on. 
  76. Please remember that you are specifying amount of pixels to move and large 
  77. numbers are inclined to be jerky.
  78.  
  79. A further routine.
  80.  
  81.   10 MODE 0:FLASH OFF:HIDE:CURS OFF:KEY OFF:BACK=LOGIC
  82.   20 GET PALETTE (5)
  83.   30 APPEAR 5,12
  84.   40 DEF SCROLL 1,0,0 TO 320,200,1,1
  85.   50 FOR Y=0 TO 100
  86.   60 SCREEN COPY BACK 0,0,320,200 TO LOGIC 1,1
  87.   70 SCROLL 1
  88.   80 NEXT Y
  89.   90 CLS
  90.  100 APPEAR 5,50
  91.  110 GOTO 40
  92.  
  93. This is a down right scroll.(mmm). Try an up left scroll.
  94.  
  95. After you have defined a scroll area and direction etc.  it can be  called 
  96. at any time.  If a CLEAR command intervenes in the program,the scroll area 
  97. will  have to be defined again,but of course a CLEAR command also  creates 
  98. other problems,and is to be avoided.
  99.  
  100. I  will  briefly mention another set of SCROLL commands.  Do  not  confuse 
  101. these commands with the previously explained scrolling operations. 
  102.  
  103.  
  104.  SCROLL ON - A new line is automatically inserted when the CURSOR reaches
  105.              past the bottom of the screen.(Default Mode)
  106.  
  107.  SCROLL OFF - When the CURSOR reaches past the bottom of the screen it
  108.               will reappear at the top.
  109.  
  110.  SCROLL UP - Moves the section of the current window above the CURSOR
  111.              one line up.
  112.  
  113.  SCROLL DOWN - Will scroll the area below the CURSOR one line down,and
  114.                the bottom line will be overwritten.
  115.  
  116.  
  117. Whether  these  commands are of any use in your program's I leave  you  to 
  118. find  out.  One  point  to note is that if a screen is  displayed  and  it 
  119. occupies the bottom line,a call to SCROLL ON in a loop will keep the  full 
  120. screen displayed for the duration of the loop.
  121.  
  122. If you are experiencing problems with synchronisation of your screens, try 
  123. the  command  WAIT VBL in your program.  This waits for a  vertical  blank 
  124. before updating the screen and may cure problems with screens or sprites.
  125.  
  126. The  ORBIT  game on the games disk makes heavy use of sprites  and  it  is 
  127. worth studying the listing. LOAD up "ORBIT.BAS" and list the program for a 
  128. look,  controlling  the listing with the SPACEBAR.  If you have a  printer 
  129. attached,  use LLIST to get a hardcopy.  STOS makes it easy to search  for 
  130. particular  commands to examine.  Use from DIRECT MODE the command  SEARCH 
  131. "sprite"  and  STOS  will  find the  first  occurrence  of  the  parameter 
  132. specified  and present you with the line containing it on the  screen.  If 
  133. you wish to continue to the next occurrence of the same item,  use  SEARCH 
  134. by itself with no parameters. If no further occurrence exists you will get 
  135. the  report SEARCH FAILED.  Note especially that the SEARCH function  will 
  136. look  for the parameters quoted,and will differentiate  between  uppercase 
  137. and lowercase.  To clarify,  keywords entered from the EDITOR in uppercase 
  138. are converted to lowercase by STOS on entry to the program line.  Got  it! 
  139.  
  140. So SEARCH "DSPRITE" will find DSPRITE but will not find  dsprite.  DSPRITE 
  141. of course can only be a variable.  This confused me for a  start.  Certain 
  142. basic keywords cannot be used as variables OR part of a variable,  notably 
  143. TO,STEP,THEN,ELSE,XOR,OR,AND,GOTO,GOSUB,MOD and AS as opposed to the other 
  144. keywords which can be used.  Are you still there?  So STEPS is not allowed 
  145. as a variable,  but DPOKE is. POKER is not allowed so it would appear that 
  146. you  can  only use the PERMITTED keywords as variables after  a  preceding 
  147. letter. Phew!!
  148.  
  149. Next time - Creating your own customised drop down or be dropped MENU bar. 
  150. How to install and get running.  Incorporating icons in the MENU bar,  and 
  151. for some added spice,design your own fully functional mouse pointer.  This 
  152. will introduce you to designing sprites with the very user friendly SPRITE 
  153. designer.  Have fun and remember I only had 512k to play with and a  half-
  154. meg drive so don't be put off by memory or drive limitations. Have fun and 
  155. read about the variables again....
  156.  
  157.                                                 (c)  Lozian MCMXC11.
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.